xm-test: ia64 min memory & arbitrarily large ramdisk
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Thu, 24 May 2007 14:40:54 +0000 (15:40 +0100)
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Thu, 24 May 2007 14:40:54 +0000 (15:40 +0100)
1) Sets a minimum of 128MB RAM for an ia64 domU; this limit was set
after experimentation, which seems to indicate it's a reasonable lower
limit (the 32MB limit previously in place did not allow an ia64 domU
to start).  If there's any problem with this, I don't mind splitting
the patch and sending it to the ia64 list, but it was small, so I hope
it's okay to include it.

2) xm-test uses ramdisks built with uClibc, which doesn't compile on
ia64.  I was able to create a ramdisk by hand, but as it was too
large, the resultant domU crashed after boot.  This patch enables the
use of an arbitrarily large ramdisk, so long as it's uncompressed.  As
xm-test builds only uncompressed ramdisks, I figured this was
reasonable for that specific application.  Suggestions on how to
detect and handle a compressed ramdisk would be welcome.

Signed-off-by: Alex Williamson <alex.williamson@hp.com>
tools/xm-test/lib/XmTestLib/arch.py

index b13d41dcc9ce9d8db7b49623adc6eee950401d68..0a55a31ae7e1f5e2964b4daae13c7a860e9e0bf2 100644 (file)
@@ -46,6 +46,9 @@ def ia_checkBuffer(buffer):
 def ia_minSafeMem():
     return 32
 
+def ia64_minSafeMem():
+    return 128
+
 def ia_getDeviceModel():
     """Get the path to the device model based on
     the architecture reported in uname"""
@@ -139,6 +142,17 @@ if _arch == "x86" or _arch == "x86_64" or _arch == "ia64":
         configDefaults = ia_HVMDefaults
     else:
         configDefaults = ia_ParavirtDefaults
+
+    # note: xm-test generates an uncompressed image, and this code
+    # expects one.  This will fail with a gzip-ed image. 
+    if configDefaults['ramdisk']:
+        rd_size = os.stat(configDefaults['ramdisk']).st_size
+        configDefaults['extra'] = 'ramdisk_size=' + str((rd_size / 1024)+1)
+
+    if _arch == "ia64":
+        minSafeMem = ia64_minSafeMem
+        configDefaults['memory'] = ia64_minSafeMem()
+
 elif _arch == "powerpc":
     minSafeMem = ppc_minSafeMem
     getDefaultKernel = ppc_getDefaultKernel